//
// COPYRIGHT DASSAULT SYSTEMES 1999
//

#ifndef MBDPstAddServices_H
#define MBDPstAddServices_H

//Local Framework
#include "ktGeneralPrtService.h" 

//ProductStructure Framework
#include "CATIProduct.h"               

//System Framework
#include "CATUnicodeString.h"

//ObjectModelerBase Framework
#include "CATDocument.h"

/**
 * Service to import an existing document.
 * This services illustrates the way to have same 
 * fonctionnalities as AddExternalComponent of CATIAProducts.
 * iThisProduct
 *        product where the document has to be imported.
 * iDocument
 *        document to import.
 * oNewProduct
 *        product instance of the imported document.
 */

ExportedByktGeneralPrtService
HRESULT AddExternalComponent(CATIProduct* iThisProd, CATDocument *iDocument, CATIProduct** oNewProduct,CATIProduct_var &spRootProduct);

/**
 * Service to create and import a document.
 * This services illustrates the way to have same 
 * fonctionnalities as AddNewComponent of CATIAProducts.
 * iThisProduct
 *        product where the document has to be imported.
 * iDocumentType
 *        type of the document to create. Only part and product documents are allowed.
 * iPartNumber
 *        part number to give to the created document. Has to be single.
 * oNewProduct
 *        product instance of the imported document.
 */

ExportedByktGeneralPrtService
HRESULT AddNewExternalComponent(CATIProduct* iThisProd, const CATUnicodeString iDocumentType,const CATUnicodeString iPartNumber, CATIProduct** oNewProduct,CATDocument *&pNewDoc);


#endif